---
title: Contributing
description: >-
  We want to create a community where Yamada UI is enjoyable and educational for
  anyone and everyone.
---

Thank you for your interest in contributing to Yamada UI😎, you are awesome!!!

When it comes to open source, there are different ways you can contribute, all of which are valuable. Here are some guidelines that should help you as you prepare your contribution.

## Setup the Project

The following steps will get you up and running to contribute to Yamada UI:

1. Fork the [repository](https://github.com/yamada-ui/yamada-ui).

2. Clone your fork locally.

```sh
git clone https://github.com/<your_github_username>/yamada-ui.git

cd yamada-ui
```

3. Setup all the dependencies and packages by running `pnpm install`. This command will install dependencies.

4. Run `pnpm www dev` to start the local server.

## Development

To improve our development process, we have set up tools and systems.

### Tooling

- [Next.js](https://nextjs.org/) Framework for documentation sites.

### Commands

- `pnpm install`: Sets up all dependencies and packages.
- `pnpm www dev`: Launches the local server.
- `pnpm www start`: Launches the production server.
- `pnpm www build`: Builds the site.
- `pnpm www format`: Checks for formatting issues.
- `pnpm www lint`: Checks for code issues.
- `pnpm www typecheck`: Checks for type issues.

### Visual Studio Code

To ensure the extension works correctly, please add the following settings to `.vscode/settings.json`.

```json
{
  "typescript.tsdk": "node_modules/typescript/lib",
  "prettier.requireConfig": true,
  "eslint.workingDirectories": ["www"]
}
```

## Update the Document

### Commit Convention

Before you create a Pull Request, please check whether your commits comply with
the commit conventions used in this repository.

When you create a commit we kindly ask you to follow the convention
`type(scope or module): message` in your commit message while using one of
the following types:

- **feat / feature**: all changes that introduce completely new code or new features
- **fix**: changes that fix a bug (ideally you will additionally reference an issue if present)
- **refactor**: any code related change that is not a fix nor a feature
- **docs**: changing existing or creating new documentation (i.e. README, docs for usage of a lib or cli usage)
- **build**: all changes regarding the build of the software, changes to dependencies or the addition of new dependencies
- **test**: all changes regarding tests (adding new tests or changing existing ones)
- **ci**: all changes regarding the configuration of continuous integration (i.e. github actions, ci system)
- **chore**: all changes to the repository that do not fit into any of the above categories

If you are interested in the detailed specification you can visit
[Conventional Commits](https://www.conventionalcommits.org) or check out the
[Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines).

### Steps to PR

1. Fork and clone the [repository](https://github.com/yamada-ui/yamada-ui).

2. Create a new branch from the `main` branch, following the `[type/scope]` naming convention. For example, `fix/accordion-hook` or `docs/menu-typo`. Type is one of the standard commit types such as `docs`, `fix`, `feat`, `build`, etc. Scope is a short word that represents the scope of work.

3. Make changes and commit according to the [commit convention](#commit-convention).

4. Once all the tasks above are completed, push your changes. After pushing, a pull request URL will be generated. Please submit your request following the template. Also, check the checks within the pull request and make sure the build has completed successfully. If there are any issues, this pull request will not be merged.

## License

By contributing code to the Yamada UI GitHub repository, you agree that your contributed code will be licensed under the MIT license.
